//迭代器
//for...of 循环是一种数据统一遍历方式，但是经过试验，发现它只能够遍历数组之类的数据结构，对于普通的对象如果直接遍历就会报出错误。
//ES能够表示有结构的数据类型越来越多，从最早的数组，对象到现在新增了set和map。开发者还可以组合使用这些类型去定义符合自己业务需求的数据结构。为了提供一种统一的遍历方式，ES2015就提出了一种Iterable接口，可迭代的。
//可迭代接口就是一种可以被for...of循环统一遍历访问的规格标准。只要这个数据他实现了可迭代接口，他就能够被for..of循环去遍历。之前尝试的set map，数组可以被for...of遍历的数据，是因为他们内部都已经实现了这个接口

const set = new Set(["foo","bar","coo"])
let interator = set[Symbol.iterator]()

console.log(interator.next())
console.log(interator.next())
console.log(interator.next())
console.log(interator.next())
console.log(interator.next())
//打印如下：
// { value: 'foo', done: false }
// { value: 'bar', done: false }
// { value: 'coo', done: false }
// { value: undefined, done: true }
// { value: undefined, done: true }